using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Xna.Framework;
using BoOnce.Core.Components;

namespace BoOnce.Core
{
    public abstract class Step
    {
        private String _StepName;
        private Game _Game;
        private StepTransitionComponent _StepTransitionComponent;

        public String StepName
        {
            get
            {
                return _StepName;
            }
        }

        protected Game Game
        {
            get
            {
                return _Game;
            }
        }

        protected StepTransitionComponent StepTransitionComponent
        {
            get
            {
                return _StepTransitionComponent;
            }
        }

        public Step(Game game,String name)
        {
            _Game = game;
            _StepName = name;
            _StepTransitionComponent = (StepTransitionComponent)_Game.Services.GetService(typeof(StepTransitionComponent));
        }

        public virtual void LoadContent() { }

        public virtual void UnloadContent() { }

        public virtual void Draw(GameTime gameTime) { }

        public virtual void Update(GameTime gameTime) { }
    }
}
